package com.xh.bussiness.practice.bean.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.xh.bussiness.practice.model.PracticeDetail;
import com.xh.bussiness.tiku.bean.dto.QuestionDto;
import com.xh.bussiness.tms.model.Class;
import lombok.Data;

import java.util.Date;
import java.util.List;

@Data
public class PracticeDto {

    /**
     * 作业id
     */
    private String id;

    /**
     * 教师id
     */
    private String userId;

    /**
     * 作业类型：（1：普通作业，2：题库作业）
     */
    private Integer type;

    /**
     * 学科id
     */
    private String subjectId;

    /**
     * 学科名称
     */
    private String subjectName;

    /**
     * 试卷标题
     */
    private String title;

    /**
     * 试卷id
     */
    private String paperId;

    /**
     * 试卷名称
     */
    private String paperName;

    /**
     * 发布时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date publishTime;

    /**
     * 班级id集合
     */
    private String[] classIds;

    /**
     * 0：草稿，1：已发布；2：未作答，3：已作答
     */
    private Integer status;

    /**
     * 提交方式（0：不限；1：可上传图片；2：可上传视频；3：可上传录音）
     */
    private String[] submitType;

    /**
     * 开始时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date startTime;

    /**
     * 结束时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date endTime;

    /**
     * 提醒时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date remindTime;

    /**
     * 提交数
     */
    private Integer submitCount;

    /**
     * 未提交数
     */
    private Integer unSubmitCount;

    /**
     * 提交率
     */
    private Double submitRate;

    /**
     * 作业详情
     */
    private List<PracticeDetail> practiceDetails;

    /**
     * 作业试题
     */
    private List<QuestionDto> questions;

    /**
     * 作业发布班级
     */
    private List<Class> classes;
    /**
     * 班级名称
     */
    private String classNames;

    private Integer deleted;

    private String creatorId;

    private String creatorName;

    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date createTime;

    private String modifierId;

    private String modifierName;

    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date modifyTime;

    /**
     * 准确率
     **/
    private Double accuracy;

    /**
     * 合格率
     **/
    private Double qualified;

    /**
     * 学生总数
     **/
    private Integer studentCount;
}
